import jieba
# 首先要保证所打开的文件是utf-8编码，如果不是，可使用记事本另存为utf-8编码
# UTF-8是一种面向互联网传输出现的变长(1-4字节）的字符UNIcoDE编码，它兼容ASCII码，即英文字符1个字节，汉字3个字节。
with open('唐诗三百首.txt', 'r', encoding='utf8') as fr:
    txt = fr.read();        # 精确模式分析，返回一个列表类型
words = jieba.lcut(txt)     # 生成一个空字典
counts = {}                 # 统计每个单词的个数
for word in words:
    counts[word]=counts.get(word,0)+1 #有则加1，没有返回0+1（添加了新的 键值对)
items=list(counts.items())  #返回所有的键值对
items.sort(key=lambda x:x[1],reverse=True)    #排序
for i in range(30):
    word,count=items[i]
    print("{0:<10}{1:>5}".format(word,count)) #word左对齐,count右对齐
